With the advent of computer digitizers and embroidery machines, users of embroidery machines and embroidery software have become more conscious of the need to reduce the time, labor, cost and user experience and expertise needed to convert images into embroidery stitch sequences. An embroidery machine is a device which can accept as input a series of movements and other actions (e.g., X/Y move, color change, thread trim, etc.) which correspond to a stitch sequence and sew color stitches onto fabric in an orderly fashion.
Before the use of computer software for assistance with generating stitch sequences for input to embroidery machines, a user needed to simulate the process used by hand embroiderers and sewing machine operators. In particular, the user needed visually to select various spots for receiving distinctive color and then to approximate those desired colored spots laying down series of stitch segments and sequencing the series of stitches. This process is extremely time-consuming and requires great experience.
Up to several hundred thousands of stitches or more are required to represent an image. Because of the need to use many different colored thread to cover many different areas many times, and the need to improve the embroidery machine""s productivity, there is an additional requirement to organize the overall stitch sequence in an efficient way so as to minimize machine-stop events such as colored thread change and thread trim. Typically, several days of labor are required to describe manually a single, ordinary image as an adequate embroidery stitch sequence.
Since the days of purely-manual stitch sequence construction, some workers have used computer digitization software to perform a tedious step-by-step task of inputting information from an image into a computer. These techniques involve the use of digitizer tablets or computer monitor screens for detailed step-by-step digitizing tracing or selecting of distinctive borders from different areas of an image to identify the borders. Conventionally, a user must select these border edges in sequence to inform a computer that certain border curves can form a region. This process is still time consuming and inconvenient. Once regions are identified, simple computer software can be used to aid in generating certain types of stitch sequences for filling in the regions in a rudimentary manner.
Edge detecting algorithms are sometimes used to automate the process of edge identification from a computer image file. However, the edges detected by these approaches are usually broken and therefore do not form a closed region ready for stitch generation. These broken edges conventionally need to be corrected manually before individual embroidery stitches can be computed from these regions"" borders and be placed within these regions following the user""s instruction.
One approach to generate these embroidery stitch sequences is to divide the image into many smaller but fairly uniform colored regions if such regions can be found, and then according to the individual geometry of these regions, to pick different style of machine thread sequence to lay threads such that these regions are covered. The threads generated in each region are in a very orderly way and almost parallel to neighboring threads. There are several problems associated with this approach. One problem is that the stitches generated in this way are too orderly and lack the fine appearance from most of the images. Secondly, very few images available today can be divided into regions of similar color in an obvious way, and thirdly, even for a simple images with clear borders of uniform colored regions, it may have hundreds of smaller regions that need to be inputted into computer for stitch generation, which is very labor-intensive and time-consuming both in digitizing along the regions"" borders and in selecting each of these small region""s borders to form the region.
Many images (e.g., photographs) are represented by bitmaps of a vast amount of different colored pixels distributed in a very mixed and complex manner. There is no art today to automatically convert an arbitrary image bitmap into a series of embroidery stitches in an efficient manner. The only existing approach for generating embroidery stitches from this type of image is to hand-lay individual stitch threads, one by one, locally in reference to the local details of image. Since this approach needs significant experience and vast amounts of labor for each task, it is not generally practical in the machine embroidery industry. The stitches resulting from such hand-placement and hand/sequencing usually have no fixed order, appear to be very random, and frequently cross one another, to the detriment of embroidery machine efficiency and in direct contrast to the types of stitches currently capable of being generated automatically or with machine assistance.
Images exist today in the form of photos, paintings, artworks, prints, fabrics, or even computer files. The methods to convert such images to bitmap data are well-known arts. A bitmap is an N by M points of color pixel data, either residing in a computer""s volatile memory (e.g., random access memory, or RAM) or nonvolatile memory (e.g., hard disk). Bitmaps on one extreme could be highly organized with a single color repeated in every pixel. Bitmaps on the other extreme could be completely random in pixel color, shade, and distribution. Thus, one can say that images as bitmaps exist in nearly infinite possibilities. The existing efforts to automate or partially automate stitch generation achieve only a limited degree of success, and for only a very limited range of image complexity/randomness.
Improved methods and systems are needed for automatic and/or machine-assisted embroidery stitch generation from an image. In particular, such improved methods and systems should reduce needed time and human labor, especially skilled labor, during the stitch-sequence generation phase. Furthermore, the stitch sequences generated from such improved methods and systems should allow for efficient stitching by embroidery machines. In addition, such improved methods and systems should be operable for a vastly greater range of image types.
An automated image processing method and system for generating a representation of an input image. One application is for reducing time and labor for constructing, e.g., computer embroidery stitches from an input image.
According to another embodiment, a method for embroidering includes receiving a digitized representation of an image, determining a plurality of regions of the image in response to the digitized representation, and determining a geometric index for each region in the plurality of regions of the image. The method also includes determining a region type associated with each regions from the plurality of regions in response to the geometric index for each region, the region types including a first region type and a second region type, embroidering representations of regions from the plurality of regions associated with the first region type; and thereafter embroidering representations of regions from the plurality of regions associated with the second region type.
According to an embodiment of the present embodiment, a method for embroidering includes receiving a digitized representation of an image, determining grain structures for a plurality of locations in the digitized representation, and the plurality of locations including a first location and a second location. The method also includes embroidering a representation of the first location using cross stitch patterns, when a grain structure for the first location indicates a bi-directional grain structure, and embroidering a representation of the first location using uni-directional stitch patterns, when the grain structure for the first location indicates a uni-directional grain structure.
According to another embodiment, an article of manufacture having embroidery sewn thereon uses one of the methods described above.
According to another embodiment, an embroidery system includes a processor, and a processor readable memory. The processor readable memory includes code that directs the processor to retrieve a digitized representation of an image, and code that directs the processor to determine a plurality of regions of the image in response to the digitized representation of the image. The memory also includes code that directs the processor to determine a geometric index for each region in the plurality of regions, code that directs the processor to determine a region type associated with each region from the plurality of regions in response to the geometric index for each region, the region types including a first region type and a second region type, code that directs the processor to direct embroidering representations of regions from the plurality of regions associated with the first region type, and code that directs the processor to direct embroidering representations of regions from the plurality of regions associated with the second region type after the representations of regions from the plurality of regions associated with the first region type.
According to another embodiment, a computer program product for a computer system including a processor comprises code configured to direct the processor to receive a digitized representation of an image, and code configured to direct the processor to determine grain structures for a plurality of locations in the digitized representation, the plurality of locations including a first location and a second location. The computer program product also includes code configured to direct the processor to direct embroidering of a representation of the first location using cross stitch patterns, when a grain structure for the first location indicates a bi-directional grain structure, and code configured to direct the processor to direct embroidering of a representation of the first location using uni-directional stitch patterns, when the grain structure for the first location indicates a unidirectional grain structure. The codes reside on a tangible media.